package vip.xiaonuo.client.modular.testPaper.entity;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 试卷实例表实体
 *
 * @author 小鹿
 * @date 2025/03/03 14:54
 */
@Getter
@Setter
@TableName("TBL_TEST_PAPER")
public class ClientTestPaper {

    /**
     * 主键
     */
    @TableId
    @Schema(description = "主键")
    private String id;

    /**
     * 客户ID
     */
    @Schema(description = "客户ID")
    private String clientId;

    /**
     * 试卷配置ID
     */
    @Schema(description = "试卷配置ID")
    private String paperConfigId;

    /**
     * 实际开始时间
     */
    @Schema(description = "实际开始时间")
    private Date startTime;

    /**
     * 计划结束时间
     */
    @Schema(description = "计划结束时间")
    private Date endTime;

    /**
     * 总分
     */
    @Schema(description = "总分")
    private BigDecimal totalScore;

    /**
     * 用户得分
     */
    @Schema(description = "用户得分")
    private BigDecimal clientScore;

    /**
     * 考试时长（单位：分钟）
     */
    @Schema(description = "考试时长（单位：分钟）")
    private Integer examDuration;

    /**
     * 实际结束时间
     */
    @Schema(description = "实际结束时间")
    private Date actualEndTime;

    /**
     * 状态：1进行中，2已结束
     */
    @Schema(description = "状态：1进行中，2已结束")
    private String status;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 创建用户
     */
    @Schema(description = "创建用户")
    @TableField(fill = FieldFill.INSERT)
    private String createUser;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    @TableField(fill = FieldFill.UPDATE)
    private Date updateTime;

    /**
     * 更新用户
     */
    @Schema(description = "更新用户")
    @TableField(fill = FieldFill.UPDATE)
    private String updateUser;

    /**
     * 试题
     */
    @Schema(description = "试题")
    private String question; // 如果试题是JSON格式，可以使用String类型，或者使用自定义类型处理器
    /**
     * 总题数量
     */
    @Schema(description = "总题数量")
    private Integer questionNumber;
    /**
     * 正确题数量
     */
    @Schema(description = "正确题数量")
    private Integer correctQuestionNumber;

    @Schema(description = "组织id")
    private String orgId;
}
